Nuprl Definition : split_tail 4,23

split_tail(L | x.f(x))
== Case of L
== Canil  <nil,nil>
== Caa.as, rec:  split_tail(as | x.f(x))/hs,ftail.
== Caa.as, rec:  Case of hs
== Caa.as, rec:  Canil  if f(a) <nil,a.ftail> else <[a],ftail> fi
== Caa.as, rec:  Cax.y, rec:  <a.hs,ftail>
(recursive) 
latex



clarification:

split_tail(L | x.f(x))
== Case of L
== Canil  <nil,nil>
== Caa.as, rec:  split_tail(as | x.f(x))/hs,ftail.
== Caa.as, rec:  Case of hs
== Caa.as, rec:  Canil  if f(a) <nil,a.ftail> else <a.nil,ftail> fi
== Caa.as, rec:  Cax.y, rec:  <a.hs,ftail>
(recursive) 
latex


DefinitionsY, if b t else f fi
FDL editor aliasessplit_tail

origin